home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / include / dev / ultra.h < prev    next >
C/C++ Source or Header  |  1990-10-19  |  5KB  |  161 lines

  1. /*
  2.  * ultra.h --
  3.  *
  4.  *    Declarations for ioctls specific to the Ultranet VME adapter.
  5.  *
  6.  * Copyright 1990 Regents of the University of California
  7.  * Permission to use, copy, modify, and distribute this
  8.  * software and its documentation for any purpose and without
  9.  * fee is hereby granted, provided that the above copyright
  10.  * notice appear in all copies.  The University of California
  11.  * makes no representations about the suitability of this
  12.  * software for any purpose.  It is provided "as is" without
  13.  * express or implied warranty.
  14.  *
  15.  * $Header: /sprite/src/lib/include/dev/RCS/ultra.h,v 1.4 90/10/19 15:51:49 jhh Exp $ SPRITE (Berkeley)
  16.  */
  17.  
  18. #ifndef _ULTRA
  19. #define _ULTRA
  20.  
  21. #define IOC_ULTRA    (14 << 16)
  22.  
  23. /*
  24.  * Ioctl definitions specific to the Ultranet device.
  25.  */
  26.  
  27. #define IOC_ULTRA_SET_FLAGS        (IOC_ULTRA | 0x1)
  28. #define IOC_ULTRA_RESET_FLAGS        (IOC_ULTRA | 0x2)
  29. #define IOC_ULTRA_GET_FLAGS        (IOC_ULTRA | 0x3)
  30. #define IOC_ULTRA_RESET            (IOC_ULTRA | 0x4)
  31. #define IOC_ULTRA_CLR            (IOC_ULTRA | 0x5)
  32. #define IOC_ULTRA_INT            (IOC_ULTRA | 0x6)
  33. #define IOC_ULTRA_WFI            (IOC_ULTRA | 0x7)
  34. #define IOC_ULTRA_LOAD            (IOC_ULTRA | 0x8)
  35. #define IOC_ULTRA_GO            (IOC_ULTRA | 0x9)
  36. #define IOC_ULTRA_EXTENDED_DIAG        (IOC_ULTRA | 0xa)
  37. #define IOC_ULTRA_DIAG            (IOC_ULTRA | 0xb)
  38. #define IOC_ULTRA_DUMP            (IOC_ULTRA | 0xc)
  39. #define IOC_ULTRA_GET_ADAP_INFO        (IOC_ULTRA | 0xd)
  40. #define IOC_ULTRA_DEBUG            (IOC_ULTRA | 0xe)
  41. #define IOC_ULTRA_INIT            (IOC_ULTRA | 0xf)
  42. #define IOC_ULTRA_START            (IOC_ULTRA | 0x10)
  43. #define IOC_ULTRA_ADDRESS        (IOC_ULTRA | 0x11)
  44. #define IOC_ULTRA_SEND_DGRAM        (IOC_ULTRA | 0x12)
  45. #define IOC_ULTRA_ECHO            (IOC_ULTRA | 0x13)
  46. #define IOC_ULTRA_TRACE            (IOC_ULTRA | 0x14)
  47. #define IOC_ULTRA_SOURCE        (IOC_ULTRA | 0x15)
  48. #define IOC_ULTRA_SINK            (IOC_ULTRA | 0x16)
  49. #define IOC_ULTRA_COLLECT_STATS        (IOC_ULTRA | 0x17)
  50. #define IOC_ULTRA_CLEAR_STATS        (IOC_ULTRA | 0x18)
  51. #define IOC_ULTRA_GET_STATS        (IOC_ULTRA | 0x19)
  52. #define IOC_ULTRA_MAP_THRESHOLD        (IOC_ULTRA | 0x1a)
  53. #define IOC_ULTRA_BCOPY_TEST        (IOC_ULTRA | 0x1b)
  54. #define IOC_ULTRA_SG_BCOPY_TEST        (IOC_ULTRA | 0x1c)
  55. #define IOC_ULTRA_HARD_RESET        (IOC_ULTRA | 0x1d)
  56. /*
  57.  * IOC_ULTRA_LOAD_BLOCK parameter.
  58.  */
  59.  
  60. typedef struct Dev_UltraLoadBlock {
  61.     int        length;            /* Length of the data. */
  62.     int     address;            /* Load address. */
  63.     char     buffer[IOC_MAX_BYTES - 2 * sizeof(int)]; /* The data. */
  64. } Dev_UltraLoadBlock;
  65.  
  66. /*
  67.  * IOC_ULTRA_GO parameter. 
  68.  */
  69.  
  70. typedef struct Dev_UltraGo {
  71.     int        address;        /* Starting address. */
  72. } Dev_UltraGo;
  73.  
  74. /* 
  75.  * IOC_ULTRA_DIAG parameter.
  76.  */
  77.  
  78. typedef struct Dev_UltraDiag {
  79.     int        version;        /* Firmware version. */
  80.     int        error;            /* 0 if tests passed, otherwise
  81.                      * the number of the test that
  82.                      * failed. */
  83.     int        hwModel;        /* Hardware model. */
  84.     int        hwVersion;        /* Hardware version. */
  85.     int        hwRevision;        /* Hardware revision. */
  86.     int        hwOption;        /* Hardware option. */
  87.     int        hwSerial;        /* Hardware serial number. */
  88. } Dev_UltraDiag;
  89.  
  90. /*
  91.  * IOC_ULTRA_GET_ADAP_INFO parameter. This is the same as IOC_ULTRA_DIAG,
  92.  * except that the 'error' field isn't used because diagnostics aren't
  93.  * run.
  94.  */
  95.  
  96. typedef Dev_UltraDiag Dev_UltraAdapterInfo;
  97.  
  98. /*
  99.  * IOC_ULTRA_EXTENDED_DIAG parameter.
  100.  */
  101.  
  102. typedef struct Dev_UltraExtendedDiag {
  103.     int        version;        /* Firmware version. */
  104.     int        error;            /* 0 if tests passed, otherwise
  105.                      * the number of the test that
  106.                      * failed. */
  107.     Boolean    externalLoopback;    /* TRUE => use external loopback
  108.                      * (there had better be a loopback
  109.                      * connector attached to the
  110.                      * adapter!) */
  111. } Dev_UltraExtendedDiag;
  112.  
  113. /*
  114.  * IOC_ULTRA_LOAD parameter.
  115.  */
  116.  
  117. typedef struct Dev_UltraLoad {
  118.     int        address;    /* Load address. */
  119.     int        length;        /* Length of the block. */
  120.     char    data[IOC_MAX_BYTES - 2 * sizeof(int)];    /* The block to load. */
  121. } Dev_UltraLoad;
  122.  
  123. /*
  124.  * IOC_ULTRA_SEND_DGRAM parameter.
  125.  */
  126.  
  127. typedef struct Dev_UltraSendDgram {
  128.     Net_Address        address;
  129.     int            count;
  130.     Time        time;
  131.     int            size;
  132.     Boolean        useBuffer;
  133.     char        buffer[100];
  134. } Dev_UltraSendDgram;
  135.  
  136. /*
  137.  * IOC_ULTRA_ECHO parameter.
  138.  */
  139.  
  140. typedef struct Dev_UltraEcho {
  141.     Boolean        echo;    /* TRUE => echo received datagrams back
  142.                  * to sender. */
  143. } Dev_UltraEcho;
  144.  
  145. typedef struct Dev_UltraSink {
  146.     int        packets;
  147.     Time    time;
  148. } Dev_UltraSink;
  149.  
  150. typedef struct Dev_UltraStats {
  151.     int        packetsSent;
  152.     int        bytesSent;
  153.     int        sentHistogram[33];
  154.     int        packetsReceived;
  155.     int        bytesReceived;
  156.     int        receivedHistogram[33];
  157. } Dev_UltraStats;    
  158.  
  159. #endif /* _ULTRA */
  160.  
  161.